Utilization is a measure of how well a computing system resource, such as a processor, memory device, storage system or communication infrastructure, is used. Measures of utilization are generally indicative of how much capacity of a resource is consumed by its workload and how much capacity is unused.
Knowledge of the level of resource utilization in computing systems is important for ensuring that applications are adequately serviced and that computing resources are deployed where they are most needed. If a resource is over-utilized, the system configuration may not support additional demands, such as additional users or an increased workload. As a result, users may experience performance degradation. To remedy this situation, the workload may be spread over additional or higher-capacity resources. Conversely, if only a small portion of a resource is being utilized, its unused capabilities may be wasted. To correct this, a lower-capacity resource may be substituted or a portion of the workload may be reassigned to the under-utilized resource.
One technique for estimating the utilization of a computing system resource involves the use of models. However, model construction can be time-consuming and there is no guarantee that utilization under any particular workload will be accurately predicted by the model. Other techniques involve monitoring activity of the resource under a workload. While this approach indicates the current workload of the resource, it has limited ability to predict how much capacity of the resource is unused. In addition, the required instrumentation can be difficult to implement.
Therefore, there is a need for improved techniques for estimating utilization of a computing system resource.